package com.zmn.oms.business.interfaces.conf.attachment;


import com.zmn.base.channel.common.dro.ChannelDRO;
import com.zmn.common.dto2.AMISListData;
import com.zmn.common.dto2.ResponseDTO;
import com.zmn.oms.common.exception.OmsBaseException;
import com.zmn.oms.model.dio.conf.attachment.ConfOrderAttachmentDIO;
import com.zmn.oms.model.entity.conf.attachment.ConfOrderAttachment;
import com.zmn.oms.model.entity.conf.attachment.ConfOrderAttachmentQuery;
import com.zmn.oms.model.entity.conf.attachment.channel.AddConfOrderAttachmentChannelDIO;
import com.zmn.oms.model.entity.conf.attachment.channel.ConfOrderAttachmentChannel;
import com.zmn.oms.model.entity.orderattachment.OrderAttachmentQuery;
import com.zmn.oms.model.vo.conf.attachment.ConfOrderAttachmentPictureVO;
import com.zmn.oms.model.vo.conf.attachment.ConfOrderAttachmentVO;
import com.zmn.oms.model.vo.conf.attachment.ConfOrderChannelQuery;
import com.zmn.oms.model.vo.conf.attachment.ServerClassDataBO;

import java.util.Collection;
import java.util.List;

/**
 * 类描述：订单标签配置
 *
 * @author liuying
 * @date 2021/07/29 18:11
 */
public interface ConfOrderAttachmentBService {


	/**
	 * 查询指定【附件类型】的配置
	 *
	 * @author liudi
	 * @param orderAttachmentQuery
	 * @return
	 */
	ConfOrderAttachment getAttachmentConfigByQuery(OrderAttachmentQuery orderAttachmentQuery);

	/**
	 * 查询照片配置的详情
	 *
	 * @author weilai
	 * @param id 照片配置主键id
	 * @since 2022年6月10日 14:11:39
	 * @return
	 */
	ConfOrderAttachmentPictureVO getAttachmentConfigPictureDetail(Integer id);

	/**
	 * 获取【照片配置】集合
	 *
	 * @param orderAttachmentQuery
	 * @return 照片配置集合
	 */
	List<ConfOrderAttachment> listConfigOrderPictureAttachmentByQuery(OrderAttachmentQuery orderAttachmentQuery);

	/**
	 * 查询出【视频】配置
	 *
	 * @param orderAttachmentQuery
	 * @return
	 */
	List<ConfOrderAttachment> listConfigOrderVideoAttachmentByQuery(OrderAttachmentQuery orderAttachmentQuery);



	/**
     * 查询分页的附件配置给前台
     *
     * @param query
     * @return
     */
    List<ConfOrderAttachmentVO> listPageByQuery(ConfOrderAttachmentQuery query);

	/**
	 * 查询照片分页的附件配置给前台
	 *
	 * @param query
	 * @return
	 */
	List<ConfOrderAttachmentVO> listPicturePageByQuery(ConfOrderAttachmentQuery query);

	/**
	 * 查询所有产品 树结构返回
	 * @return
	 */
	Collection<ServerClassDataBO> listAllServerClass();

	/**
	 * 查询所有渠道
	 * @param query
	 */
	ResponseDTO<AMISListData<ChannelDRO>> listChannel(ConfOrderChannelQuery query);

    /**
     * 修改
     *
     * @param conf
     */
    void modifyConfById(ConfOrderAttachment conf) throws OmsBaseException;

	/**
	 * 修改照片配置
	 *
	 * @param dio
	 */
	void modifyConfPictureById(ConfOrderAttachmentDIO dio) throws OmsBaseException;


    /**
     * 修改审核
     *
     * @param conf
     */
    void modifyConfReviewById(ConfOrderAttachment conf);

    /**
     * 修改必传
     *
     * @param conf
     */
    void modifyConfMustUploadById(ConfOrderAttachment conf);

    /**
     * 修改审核
     *
     * @param conf
     */
    void modifyConfAutoAuditById(ConfOrderAttachment conf);

    /**
     * 修改sort
     *
     * @param conf
     */
    void modifyConfSortById(ConfOrderAttachment conf);

    /**
     * 新增
     *
     * @param conf
     */
    Integer addConf(ConfOrderAttachment conf) throws OmsBaseException;

	/**
	 * 新增照片配置
	 *
	 * @param dio
	 */
	void addConfPicture(ConfOrderAttachmentDIO dio) throws OmsBaseException;


	/**
	 * 删除照片配置
	 * @param id
	 */
	void deleteByAttachmentId(Integer id);


}
